$(function () {
    // 初始化文章分类列表
    //因为添加，修改，删除后都需要重新渲染页面，所以封装成函数

    //获取文章分类列表,将其中的内容渲染到表格中（序号 分类名称 分类别名 ）
    let layer = layui.layer;
    initArtCateList();
    function initArtCateList() {
        axios({
            method: 'GET',
            url: '/my/article/cates'
        }).then(res => {
            // console.log(res);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message);
            };
            let arr = [];
            res.data.data.forEach(function (ele) {
                arr.push(`
                <tr>
                    <td>${ele.Id}</td>
                    <td>${ele.name}</td>
                    <td>${ele.alias}</td>
                    <td>
                        <button data-id='${ele.Id}' class="btn-edit layui-btn layui-btn-xs">编辑</button>
                        <button data-id='${ele.Id}'  class="del-edit layui-btn layui-btn-xs layui-btn-danger">删除</button>
                    </td>
                </tr>
                `)
            });
            $('tbody').empty().html(arr.join(""));
        });
    };

    let indexAdd = 0;
    //点击 添加类别 按钮，弹出对话框
    $('#addBtn').on('click', function () {
        indexAdd = layer.open({
            type: 1,
            title: '添加文章分类',
            area: ['500px', '260px'],
            content: `
            <form id="addForm" class="layui-form" action="">
                <div class="layui-form-item">
                    <label class="layui-form-label">分类名称</label>
                    <div class="layui-input-block">
                        <input type="text" name="name" required lay-verify="required" placeholder="请输入分类名" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">分类别名</label>
                    <div class="layui-input-block">
                        <input type="text" name="alias" required lay-verify="required" placeholder="请输入分类别名" autocomplete="off"
                        class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button class="layui-btn" lay-submit        lay-filter="formDemo">确认添加</button>
                        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                    </div>
                </div>
            </form>
            `
        });
    });

    //添加文章分类
    //将对话框中的文章分类添加到数据库，再将其渲染到表格中
    $('body').on('submit', '#addForm', function (e) {
        e.preventDefault();
        axios({
            method: 'POST',
            url: '/my/article/addcates',
            data: $(this).serialize()
        }).then(res => {
            if (res.data.status !== 0) {
                return layer.msg(res.data.message);
            };
            layer.msg('恭喜您，添加文章类别成功！');
            initArtCateList();
            // 添加后，关闭对话框
            layer.close(indexAdd);
        });
    });

    //点击 编辑 按钮，弹出对话框
    let indexEdit = 0
    $('tbody').on('click', '.btn-edit', function () {
        //弹出层
        indexEdit = layer.open({
            type: 1,
            title: '修改文章类别',
            area: ['500px', '260px'],
            content: `
            <form id="editForm" class="layui-form" lay-filter="editForm">
                <!--隐藏域，填充Id值，将来修改数据的时候使用-->
                <input type="hidden" name="Id">
                <div class="layui-form-item">
                    <label class="layui-form-label">分类名称</label>
                    <div class="layui-input-block">
                        <input type="text" name="name" required lay-verify="required" placeholder="请输入分类名" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">分类别名</label>
                    <div class="layui-input-block">
                        <input type="text" name="alias" required lay-verify="required" placeholder="请输入分类别名" autocomplete="off"
                        class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button class="layui-btn" lay-submit        lay-filter="formDemo">确认修改</button>
                        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                    </div>
                </div>
            </form>
            `
        });

        //修改分类弹出层
        //自定义属性获取id值
        let index = $(this).attr('data-id');
        axios({
            method: "GET",
            // /:id 动态参数（路由参数）
            // 特点：/ 不能省略， ：一定要去掉，id是动态变化的    url: '/my/article/cates/:id'
            url: '/my/article/cates/' + index
        }).then(res => {
            if (res.data.status !== 0) {
                return layer.msg(res.data.message);
            };
            layui.form.val('editForm', res.data.data)
        });
    });

    //修改文章分类列表的内容,添加到数据库,再将其渲染到表格中
    $('body').on('submit', '#editForm', function (e) {
        e.preventDefault();
        axios({
            method: 'POST',
            url: '/my/article/updatecate',
            data: $(this).serialize()
        }).then(res => {
            if (res.data.status !== 0) {
                return layer.msg(res.data.message);
            };
            layer.msg('恭喜您，修改文章类别成功！');
            initArtCateList();
            // 添加后，关闭对话框
            layer.close(indexEdit);
        });
    });

    //删除
    $('tbody').on('click', '.del-edit', function () {
        let id = $(this).attr('data-id');
        //弹出层
        layer.confirm('确定删除吗?', { icon: 3, title: '提示' }, function (index) {
            axios({
                method: 'GET',
                url: '/my/article/deletecate/' + id
            }).then(res => {
                if (res.data.status !== 0) {
                    return layer.msg(res.data.message);
                };
                layer.msg('恭喜您，删除文章类别成功！');
                initArtCateList();
            })
            layer.close(index);
        });
    });
});